package cn.hicard.auth.dao;

import java.util.List;

import cn.hicard.auth.entity.MgUserinfo;
import cn.hicard.core.Page;
import cn.hicard.core.PageResult;
import cn.hicard.core.Where;

/**
 * 用户信息管理DAO接口
 * @author zhangy
 *
 */
public interface UserinfoDao {
	
	/**
	 * 保存一个用户
	 * @param userinfo
	 * @throws Exception
	 */
	void save(MgUserinfo userinfo)throws Exception;
	
	/**
	 * 修改一个用户
	 * @param userinfo
	 * @throws Exception
	 */
	void update(MgUserinfo userinfo)throws Exception;
	
	/**
	 * 删除一个用户
	 * @param pkUserinfo
	 * @throws Exception
	 */
	void delete(int pkUserinfo)throws Exception;
	
	/**
	 * 根据主键查询一个用户
	 * @param pkUserinfo
	 * @return
	 * @throws Exception
	 */
	MgUserinfo getByPk(int pkUserinfo)throws Exception;
	
	/**
	 * 根据登录名loginid查询一个用户
	 * @param loginid
	 * @return
	 * @throws Exception
	 */
	MgUserinfo getByLoginid(String loginid)throws Exception;
	
	/**
	 * 检测登录名loginid是否存在
	 * @param loginid
	 * @return
	 * @throws Exception
	 */
	boolean existLoginid(String loginid)throws Exception;
	
	/**
	 * 根据条件，搜索一页的用户
	 * @param userinfo
	 * @param page
	 * @return
	 * @throws Exception
	 */
	PageResult<MgUserinfo> search(Where where, Page page)throws Exception;

	/**
	 * 取得所有用户信
	 * @return
	 */
	List<MgUserinfo> getAll()throws Exception;
}
